查看原文
其他

云数据库RDS MySQL Serverless已来

李大勇 阿里云数据库 2022-10-13





DBA的痛,你有吗?

Case1: 数据库又被打满了,业务宕机了!

大促不断、明星又八卦了、俄乌战争了 总有你不知道的某个时刻,库又被打满了......

Case2:某某同学,为什么你的数据库负载这么低,为什么搞这么大规格???

某某老板突然看了一下数据库监控,发现负载这么低(业务低谷期),严重怀疑我们为什么这么浪费资源......

Case3: 太贵了,太贵了,今年又超预算了!!!

IT系统成本太高太高,研发、测试、生产系统预算支出这么高?你不优化系统提高效率,我就优化你,老板看着预算支出咆哮着......

RDS MySQL Serverless公测结束,正式对外服务,以上问题统统消失!

以终为始、解您痛点

让算力像自来水一样按需使用一直都是各大云厂商的目标。Serverless概念以及FaaS+BaaS的设计思想提出,极大的影响了近几年云计算的发展。随着阿里云的FC、AWS的Lambda 以及国内各友商FaaS模式的发展,业内对数据库模式的BaaS需求越发强烈。数据库Serverless的核心是解决实例CPU/内存/磁盘等资源的平滑升降,让数据库实例根据负载情况按需分配资源,最终可以用最合理的IT资源完成客户价值:

Provision & Serverless版本资源对比

为了更好的服务客户,阿里云RDS MySQL Serverless在设计开发中始终坚持以下几个目标:

  • 提升云资源的利用率,平峰填谷带来资源最大化利用,为客户带来更高的性价比空间;

  • 建设极致的弹性能力,自动化应对流量洪峰,提升DBA等运维同学的幸福感;

  • 依托AliSQL的定制能力,结合Serverless场景做深度优化,保障极致弹性过程的稳定性;

  • 秒级计费能力以及丰富的产品功能,让按需使用和按量付费更彻底;

  • 实例资源隔离分配,避免争抢,让您用的更稳;

阿里云RDS for MySQL数据库在资源池化能力、监控能力、弹性能力、计费能力上深耕多年,当数据库能做到秒级监控、秒级弹性、秒级计费、内核无感调参、智能诊断等等能力之后,将这些能力整合到一起之后就自然而然催生出Serverless数据库这种形态。Serverless数据库既是客户所需,也是一件水到渠成的事情。

从技术架构上,RDS MySQL Serverless秉承一贯的云原生之路,分为接入层、路由层、计算层、存储层四个层次,充分利用云原生基础设施的弹性能力,将资源解耦和分层弹性做到极致。辅助以智能决策能力、统一资源调度能力等成熟的周边工具能力,将Serverless能力做到更加稳定和顺滑。

作为阿里云首款商业化的Serverless数据库,RDS Serverless数据库引领着数据库Serverless的创新。在本次商业化的内容当中,也首先引入了若干理念的变化:

  1. RDS MySQL Serverless首次引入了归一化的资源度量单位RCU,针对底层不同的硬件类型进行了算力的统一化;
  2. RDS MySQL Serverless首次引入了秒级计费的能力,将数据库的计费力度精细到秒的力度;
  3. RDS MySQL Serverless首次引入了Data API的概念,让应用像范围RESTful接口一样访问数据库,以更好的姿势接入到函数计算当中;

夯实基础、释放潜能

RDS MySQL Serverless产品于 2022年8月15日正式对外发布MySQL 8.0基础版的商业售卖,为保障客户使用数据库Serverless的稳定性和高性价比,主要在以下几个方面进行深入改造和优化:

1、本地秒级弹性

依托云原生能力,弹性调度可以最快做到3-5秒资源弹性;即当客户实例负载发生突变,系统会快速感知到变化并分配适量资源让您的实例负载始终趋向合理范围。

本地秒级弹性架构

如上架构示意图可见,弹性调度系统设计拆分为4个阶段,共同完成实例的快速弹性;

  • 监控感知

    秒级监控实例的综合状态,包括计算、存储、网络以及MySQL的核心指标,并将核心数据上报给控制器;
  • 决策控制
    决策控制模块会根据实例的实时状态综合判断实例的性能瓶颈,给出资源弹升建议;
  • 资源调度

    资源调度负责完成资源的再分配,确保资源合理使用不发生实例间的互相争抢;

  • 执行控制

    最终控制器会完成实例所需内存和相应参数的修改,确保实例资源的最佳配比;

通过以上一系列的任务的执行+正反馈,不断的动态调整,让您的实例平稳运行在合理的资源区间,给您带来极致的弹性和性价比。

2、存储自动扩容

通过线上大量的实例运行经验可以看到,很多实例因为扩容不及时而导致锁定,进而影响业务。因此MySQL Serverless在设计时候考虑提供云盘容量自动扩容,通过对磁盘水位的实时探测,会每5分钟对磁盘进行巡检并按需执行扩容(最大32T),最大限度避免您的实例因为空间不足锁定。

3、支持实例自动启停

为了给研发/测试实例或者周期无负载实例提供更极致的成本优化,MySQL Serverless支持了实例的自动启停功能,以便客户在不需要访问数据库的时候,让其进入静默状态,可以进一步给客户带来资源成本的节省。

实例自动启停架构示意图

为保障实例启停体验,我们在以下几方面进行了深入改造:
  • AliSQL内核启动效率深度优化

    通过阿里云AliSQL数据库内核团队的不断优化,将实例内核本身的启动时间压缩到10秒;
  • Router优化改造

    通过对Router的深度改造,可以让实例睡眠期间也不“宕机”,当MySQL是静默状态时,一旦有请求访问,Router会Hold请求直到MySQL醒来,让系统一直在线,随时响应客户的请求;

  • 云原生资源调度优化

    为保障实例资源分配和加载的效率,我们采用了分布式资源调度能力,并不断优化执行效率,极大的降低了实例启动管控时间;

  • 云原生容器下载加速优化
    结合阿里云云原生团队的容器加速能力,可以做到实例启动按需加载,完美解决了容器下载效率问题。
4、秒级计费能力

通过架构升级,MySQL Serverless数据库实现了秒级计费:

  • 正常运行的实例,计费系统会记录实例秒级RCU资源量变化,推送精确计费;

  • 当您的实例进去自动暂停阶段,计费系统只会计量您的存储云盘费用,让您省到极致;

  • 当您的实例恢复启动状态后,计费系统会重新按照资源RCU进行秒级计费;

5、生态接入能力

传统数据库通过都是通过JDBC/ODBC进行数据库CURD等操作,对于程序员有较高的要求。本次Serverless数据库通过HTTP请求直接访问数据库,降低数据库的使用门槛。

RDS自有的Secret Manager系统会安全地保存好您的数据库访问凭证(用户名,密码),通过ARN标识符,我们可以确认您对您的serverless数据库的访问权限,并为您提供以RESTful API,SDK集成等方式灵活地执行SQL语句与数据库进行交互的能力。用户示意图如下(原创图片,使用请标明出处):

展望未来、合作共赢

未来RDS Serverless会继续大力发展在产品形态、极致弹性以及智能运维等方面不断推陈出新,持续加强建设稳定性,让客户放心用云,从而更专注自身业务的发展,合作共赢。RDS MySQL Serverless 已经发布,您可以通过点击“阅读原文来体验使用产品,期待您的建议和反馈!欢迎致电邮箱:vogts.wangt@alibaba-inc.com作者信息

李大勇 RDS MySQL核心研发人员,专注于数据库Serverless方向探索及架构实践。

推荐阅读

点击“阅读原文”查看云数据库 RDS SQL Server 更多信息

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存